Skip to content

Adding and editing github plumbing files#489

Open
Becheler wants to merge 2 commits into
boostorg:developfrom
Becheler:doc/gh-plumbing
Open

Adding and editing github plumbing files#489
Becheler wants to merge 2 commits into
boostorg:developfrom
Becheler:doc/gh-plumbing

Conversation

@Becheler
Copy link
Copy Markdown
Collaborator

@Becheler Becheler commented May 13, 2026

Summary

Adds the standard GitHub community files for Boost.Graph so that:

  1. contributors land on clear templates and oriented towards actionable items
  2. open ended conversations are oriented towards Github Discussions
  3. the repo passes the GitHub community profile check

What's added

Repo-root community files

Those are required for the repo to pass the GitHub community profile check:

  • README.md refreshed for clarity and consistency
  • CONTRIBUTING.md show how to build, test, and submit changes, it shows up automatically in Github contributions flows (issue or PR filed)
  • CODE_OF_CONDUCT.md : Contributor Covenant 2.1
  • SECURITY.md : minimal. Reports via GitHub private vulnerability reporting that would need to be enabled.

.github/ plumbing

  • CODEOWNERS : review routing so @jeremy-murphy and @Becheler are automatically assigned as reviewers (make code ownership clear to contributors but we can adjust notifications if this becomes overwhelming)
  • ISSUE_TEMPLATE/bug_report.md : focused on actionable stuff.
  • ISSUE_TEMPLATE/feature_request.md focus on actionable stuff, redirects to Discussions for open-ended stuff
  • ISSUE_TEMPLATE/documentation.md for docs bugs, missing pages, broken examples.
  • ISSUE_TEMPLATE/config.yml disables blank issues and redirects design questions to GitHub Discussions.
  • PULL_REQUEST_TEMPLATE.md some checks for triaging and testing.

@Becheler Becheler self-assigned this May 13, 2026
@Becheler Becheler added the docs label May 13, 2026
Copy link
Copy Markdown
Contributor

@andreacassioli andreacassioli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks pretty good to me! I left few comments but nothing major. I believe it is a good first step.

Comment thread CONTRIBUTING.md
| Template parameters | `PascalCase` | `template <class Graph, class WeightMap>` |
| Tag-dispatch types | `snake_case` + `S` suffix | `vecS`, `directedS` |
| Macros | `BOOST_GRAPH_` prefix, `SCREAMING_SNAKE_CASE` | `BOOST_GRAPH_DECLARE_EDGE_PROPERTY` |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there also some convention about class members or methods? Like using m_ prefix?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good call, thanks ! I added the prefixing :)

Comment thread CONTRIBUTING.md
- Track BGL's position in the Boost dependency DAG via [boostdep](https://github.com/boostorg/boostdep)'s hosted reports. The long-term goal is to reduce BGL's level over time:
- **[Module levels](https://pdimov.github.io/boostdep-report/master/module-levels.html#graph)** shows BGL's depth in the global DAG. A rising level means new transitive Boost dependencies have been pulled in.
- **[Per-library page](https://pdimov.github.io/boostdep-report/develop/graph.html)** shows BGL's direct deps and per-dep `#include` counts.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what about boost macros? looking around there is plenty of them in use.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andreacassioli thank you :) I just added an entire section providing guidance because it's a non trivial problem (Joaquin and Jeremy provided the table)

Comment thread CONTRIBUTING.md Outdated

When writing new code:

- **Prefer `std::`** when the supported C++ standard has an equivalent. Use `std::function`, `std::shared_ptr`, `std::tuple` over their Boost counterparts.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any exception? like some containers in std might be slower than boost (also some particular case might be in the pending folder...)

Comment thread CONTRIBUTING.md
| Template parameters | `PascalCase` | `template <class Graph, class WeightMap>` |
| Tag-dispatch types | `snake_case` + `S` suffix | `vecS`, `directedS` |
| Macros | `BOOST_GRAPH_` prefix, `SCREAMING_SNAKE_CASE` | `BOOST_GRAPH_DECLARE_EDGE_PROPERTY` |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there also some convention about class members or methods?

Also it is worth mentioning that there is .clang-format file that defines some of the style (I guess it is checked in CI?)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks andrea ! I added the class members/methods convention !
I was not even aware of this clang-format, and it's actually not checked in CI, I mentioned it 😄 Maybe worth a future clang-format 120k loc PR ahaha. But likely not a priority.

@Becheler Becheler changed the title adding and editing github plumbing files Adding and editing github plumbing files May 21, 2026
@Becheler Becheler marked this pull request as ready for review May 21, 2026 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants